Program Comprehension During Software Maintenance and Evolution

نویسندگان

  • Anneliese Amschler Andrews
  • A. Marie Vans
چکیده

Computer P rogram understanding is a major factor in providing effective software maintenance and enabling successful evolution of computer systems. For years, researchers have tried to understand how programmers comprehend programs during software maintenance and evolution. Five types of tasks are commonly associated with software maintenance and evolution: adaptive, perfective, and corrective maintenance; reuse; and code leverage. Each task type typically involves certain activities (see Table 1). Some activities, such as understanding the system or problem, are common to several tasks. To analyze the cognitive processes behind these tasks, researchers have developed several models (see Table 2). In this article, we describe common elements of six cognition models and compare them based on their scope and experimental support. All models use existing knowledge to build new knowledge about the mental model of the software that is under consideration. Many of these models are based on exploratory experiments, and some of those models have been validated. Programmers employ various strategies and use cues in code or documentation as guidance. However, their level of expertise greatly influences how efficiently they understand the code. Because of limited knowledge about specialized cognition needs for some maintenance tasks, the code cognition models do not represent every single task listed in Table 1. Most models assume that the objective is to understand all of the code rather than a particular purpose, such as debugging. While these general models can foster a complete understanding of a piece of code, they may not always apply to specialized tasks that more efficiently employ strategies geared toward partial understanding. We identify open questions, particularly considering maintenance and evolution of large-scale code. These questions relate to scalability of existing experimental results with small programs, validity and credibility of results based on experimental procedure, and challenges of data availability.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Challenges in Program Comprehension

Program comprehension as a subtask of software maintenance and evolution consumes about half of the time spent by the developers who have to explore a systems’ source code to find and understand the subset of the code which is relevant to their current task. The problems encountered during the comprehension process influence the time spent on program comprehension to a great extent. Although ma...

متن کامل

Workshop on Program Comprehension through Dynamic Analysis (PCODA '05)

Software maintenance and evolution can be made easier if program comprehension techniques are used. Understanding a software system would typically necessitate a combination of static and dynamic analysis techniques. The aim of this workshop is to gather researchers working in the area of program comprehension with an emphasis on dynamic analysis. We are interested in investigating how dynamic ...

متن کامل

Support for an integrated approach to program understanding : an application of software visualisation

Program Comprehension is a key factor in providing effective software maintenance and enabling successful evolution of software systems. The objective of this research is to provide a framework and mechanism to facilitate the understanding of large software systems. There exist a number of theories and models of Program Comprehension where each favours a different approach to comprehension. It ...

متن کامل

Aspects For Legacy Applications

This paper provides a summary of the objectives, structure, and the outcome of Dagstuhl seminar #06302 on Aspects For Legacy Applications, held from July 26th to July 29th 2006 at Schloss Dagstuhl, Germany. The goal of the seminar was to bring together researchers from the domains of aspect oriented software development, software reengineering (with a focus on reverse engineering, program compr...

متن کامل

A Dynamic Software Evolution by Metamodel Change

Every long-time running software system is sooner or later subject of a change. The most common reasons are different requests for a bug fixing or adding a new functionality. Software maintenance forms bigger part of software’s lifetime. Before applying a change, it is essential to correctly understand current state of affected system. Without all relevant information about both – system as who...

متن کامل

Introduction to the special issue on program comprehension through dynamic analysis (PCODA)

This special issue on program comprehension through dynamic analysis is tightly related to the international workshop on program comprehension through dynamic analysis (PCODA) series. The aim of PCODA is to bring together researchers and practitioners using dynamic analysis as a basis for their program comprehension and reverse engineering technique(s). Within the reverse engineering community ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • IEEE Computer

دوره 28  شماره 

صفحات  -

تاریخ انتشار 1995